package com.zu.commu.auto1_0.protocol;

import com.zu.commu.auto1_0.protocol.call.CallProtocol;
import com.zu.commu.auto1_0.protocol.call20Date.Call20DateProtocol;
import com.zu.commu.auto1_0.protocol.call24Hour.Call24Protocol;
import com.zu.commu.auto1_0.protocol.charge.ChargeProtocol;
import com.zu.commu.auto1_0.protocol.charge.ReadChargeProtocol;
import com.zu.commu.auto1_0.protocol.chargeTimes.SetChargeTimesProtocol;
import com.zu.commu.auto1_0.protocol.clean.SetCleanProtocol;
import com.zu.commu.auto1_0.protocol.clock.ReadClockProtocol;
import com.zu.commu.auto1_0.protocol.clock.SetClockProtocol;
import com.zu.commu.auto1_0.protocol.initValue.SetInitValueProtocol;
import com.zu.commu.auto1_0.protocol.pump.SetPumpProtocol;
import com.zu.commu.auto1_0.protocol.reportTime.SetReportTimeProtocol;
import com.zu.commu.auto1_0.protocol.waterLevel.WaterLevelProtocol;
import com.zu.commu.auto1_0.protocol.waterLineWarning.WaterLineWarningProtocol;
import com.zu.commu.auto1_0.protocol.waterSiteWarning.WaterSiteWarningProtocol;

public class OrderProtocol {
    public byte[] createCallOrderData(String meterNo)
            throws Exception {
        return new CallProtocol().remoteData(meterNo);
    }

    public byte[] createSetClockOrderData(String meterNo, String date)
            throws Exception {
        return new SetClockProtocol().remoteData(meterNo, date);
    }

    public byte[] createReadClockOrderData(String meterNo)
            throws Exception {
        return new ReadClockProtocol().remoteData(meterNo);
    }

    public byte[] createPumpOrderData(String meterNo, String action)
            throws Exception {
        return new SetPumpProtocol().remoteData(meterNo, action);
    }

    public byte[] createInitValueOrderData(String meterNo, String value)
            throws Exception {
        return new SetInitValueProtocol().remoteData(meterNo, value);
    }

    public byte[] createChargeOrderData(String meterNo, String value, String times)
            throws Exception {
        return new ChargeProtocol().remoteData(meterNo, value, times);
    }

    public byte[] reCreateChargeOrderData(String meterNo, String value, String times)
            throws Exception {
        return new ChargeProtocol().reCreateRemoteData(meterNo, value, times);
    }

    public byte[] createChargeTimesOrderData(String meterNo, String times)
            throws Exception {
        return new SetChargeTimesProtocol().remoteData(meterNo, times);
    }

    public byte[] createReadChargeOrderData(String meterNo)
            throws Exception {
        return new ReadChargeProtocol().remoteData(meterNo);
    }

    public byte[] createCall24DataOrderData(String meterNo)
            throws Exception {
        return new Call24Protocol().remoteData(meterNo);
    }

    public byte[] createCall20DateDataOrderData(String meterNo, String value)
            throws Exception {
        return new Call20DateProtocol().remoteData(meterNo, value);
    }

    public byte[] createCleanOrderData(String meterNo)
            throws Exception {
        return new SetCleanProtocol().remoteData(meterNo);
    }

    public byte[] createWaterSiteWarningOrderData(String meterNo, String value)
            throws Exception {
        return new WaterSiteWarningProtocol().remoteData(meterNo, value);
    }

    public byte[] createWaterWarningOrderData(String meterNo, String value)
            throws Exception {
        return new WaterLineWarningProtocol().remoteData(meterNo, value);
    }

    public byte[] createWaterLevelOrderData(String meterNo, String value)
            throws Exception {
        return new WaterLevelProtocol().remoteData(meterNo, value);
    }

    public byte[] createReportTimeOrderData(String meterNo, String value)
            throws Exception {
        return new SetReportTimeProtocol().remoteData(meterNo, value);
    }
}
